<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/5/17
 * Time: 15:40
 */

//定义mysql操作类
namespace Shop;
if(!defined("SHOP")){
    header("Location:../index.php");
}

class Mypdo{
    //属性
    private $host; //地址
    private $port; //端口
    private $user; //用户
    private $pass; //密码
    private $dbname; //库名
    private $charset; //字符集

    //初始化属性
    //$info 初始化的数据
    function __construct($info='')
    {
        $this->host=isset($info['host'])?$info['host']:'localhost';
        $this->port=isset($info['port'])?$info['port']:'3306';
        $this->user=isset($info['user'])?$info['user']:'root';
        $this->pass=isset($info['pass'])?$info['pass']:'root';
        $this->dbname=isset($info['dbname'])?$info['dbname']:'shop';
        $this->charset=isset($info['charset'])?$info['charset']:'utf8';

        //连接数据库
        $this->my_connect();
        //选择数据库，设置字符集
        $this->my_uset();
    }

    //连接认证
    private function my_connect(){

        $link=mysql_connect("{$this->host}:{$this->port}",$this->user,$this->pass);
        if(!$link){
            echo '数据库连接失败！<br/>';
            echo '错误编码：'.mysql_errno().'<br/>';
            echo '错误信息：'.iconv("GBK","UTF-8",mysql_error()).'<br/>';
            exit;
        }
    }

    //定义一个执行sql的方法，可以吧错误信息显示出来
    public function my_query($sql){
        $res=mysql_query($sql);
        if(!$res){
            echo '数据库连接失败！<br/>';
            echo '错误编码：'.mysql_errno().'<br/>';
            echo '错误信息：'.iconv("GBK","UTF-8",mysql_error()).'<br/>';
            exit;
        }

        return $res;
    }

    //选择数据库，设置字符集
    private function my_uset(){
        $sql="use {$this->dbname}";
        $this->my_query($sql); //选择数据库
        $sql="set names {$this->charset}";
        $this->my_query($sql); //设置字符集
    }

    //高级查询方法
    public function my_sel($sql,$type=1){
        $res=$this->my_query($sql);
        if($type==1){
            //单条
            return mysql_fetch_assoc($res);
        }else{
            //多条
            $list=array();
            while($row=mysql_fetch_assoc($res)){
                $list[]=$row;
            }

            return $list;
        }
    }

    //添加操作
    public function my_add($table,$arr){
        $sql="insert into $table set ";
        foreach($arr as $k=>$v){
            //$k ： 字段名,$v ：值
            $sql.="$k= '$v',";
        }
        $sql=trim($sql,',');
        $this->my_query($sql);
        //返回增长的id
        return mysql_insert_id();
    }

    //修改操作
    public function my_upd($table,$arr,$where){
        $sql="update $table set ";
        foreach($arr as $k=>$v){
            //$k ： 字段名,$v ：值
            $sql.="$k= '$v',";
        }
        $sql=trim($sql,',');
        $sql.=" where $where";
        $this->my_query($sql);
        return mysql_affected_rows(); //受影响的行数
    }
}